/**
 * @format
 * @Author: TC
 * @Date: 2025-04-18 20:41:56
 * @Last Modified by: TC
 * @Last Modified time: 2025-04-29 17:02:44
 */

import { Node, Texture2D } from "cc";
import { EUILayer } from "../Const/ComponentConst";

/**
 * 基础接口
 */
export interface IBaseInterface {
    release(): void;
}

export interface IComponent {
    uuid?: number;
    zIndex?: number;
}

/**
 * 场景基础接口
 */
export interface IBaseScene {
    initLayers(): void;
    getLayer(layerName: EUILayer): Node;
}

/**
 * 窗口基础接口
 */
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export interface IBaseUI extends IComponent {}

/**
 * 场景对象池节点接口
 */
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export interface IPoolItemData {}

/**
 * 提示界面接口
 */
export interface ITip extends IUIData {
    tip: string;
}

/**
 * 帮助界面接口
 */
export interface IHelp extends IUIData {
    title: string;
    contentArr: string[];
}
/**
 * 引导界面接口
 */
export interface IGuideData extends IUIData {
    texture: Texture2D;
}

/**
 * 通用窗口界面接口
 */
export interface ICommonDialogData extends IUIData {
    title?: string;
    content?: string;
    strCancel?: string;
    strOk?: string;
    cbCancel?: () => void;
    cbOk?: () => void;
    hideBtnCancel?: boolean;
}

/**
 * 基础UI数据接口
 */
export interface IUIData {
    name: string;
}

export interface IV2 {
    x: number;
    y: number;
}
